package cn.csc.module.shoppingCard.dal.dataobject.transaction;

import cn.csc.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.time.LocalDateTime;

/**
 * 交易记录 DO
 *
 * @author liuchuang
 */
@TableName("card_transaction")
@KeySequence("card_transaction_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CardTransactionDO extends BaseDO {

    /**
     * 主键id
     */
    @TableId
    private BigInteger id;
    /**
     * 项目ID
     */
    private BigInteger projectId;
    /**
     * 关联的卡ID
     */
    private BigInteger cardId;
    /**
     * 关联的卡号
     */
    private String cardNumber;
    /**
     * 交易类型（1-充值，2-消费，3-退款，4-冻结，5-解冻）
     */
    private Byte txnType;
    /**
     * 交易金额（正数表示收入，负数表示支出）
     */
    private BigDecimal amount;
    /**
     * 状态(0-创建，1-完成)
     */
    private Byte status;
    /**
     * 店铺Id
     */
    private BigInteger shopId;
    /**
     * 关联的订单号
     */
    private BigInteger relatedOrder;
    /**
     * 关联的订单子项ID
     */
    private BigInteger relatedOrderItem;
    /**
     * 交易时间
     */
    private LocalDateTime txnTime;
    /**
     * 备注（如充值渠道、消费商户信息）
     */
    private String remark;

}
